21 research outputs found

    Flot de conception automatique pour circuits commutables

    No full text
    National audienceLes FPGA, ou puces reconfigurables, n’ont pas cessé d’évoluer depuis leur création et sont désormais utilisés dans des systèmes complets (Xilinx Zynq ou Altera Stratix). Malgré tout, il reste de nombreux champs applicatifs desquels ils sont absents, et à tort. Utiliser les FPGA de manière plus intense au sein de systèmes complets est possible, mais il faut pour cela développer les capacités multi-utilisateurs de ces plateformes. Donner la capacité à une application s’exécutant sur un FPGA de se stopper pour, par exemple, laisser s’exécuter d’autres applications jugées prioritaires est particulièrement intéressant. Une telle action est qualifiée de « changement de contexte » (en anglais context-switch).Dans cet article, nous présentons une méthode et un outil permettant de donner cette capacité à des circuits fonctionnant sur cible reconfigurable. Le flot de conception présenté s’appuie sur un logiciel de synthèse de haut niveau et offre automatiquement la capacité de commutation aux circuits synthétisés. Les expériences menées sur un panel de circuits classiques montrent que l’ajout de cette capacité à un coût relativement faible ainsi qu’une rapidité de commutation sans égale dans la littérature

    Automatic High-Level Hardware Checkpoint Selection for Reconfigurable Systems

    No full text
    International audience—Modern FPGAs provide great computational power and flexibility but there is still room for improving their performances. For example multiuser approaches are particularly underdeveloped as they require specific mechanisms still to be automated. Sharing an FPGA resource between applications or users requires a context switch ability. The latter enables pausing and resuming applications at system demand. This paper presents a method that automatically selects a good execution point, called hardware checkpoint, to perform a context switch on an FPGA. The method relies on a static analysis of the finite state machine of a circuit to select the checkpoint states. The obtained selection ensures that the context switch mechanism respects a given latency and tries to minimize the mechanism costs. The method takes advantage of its integration in an open-source HLS tool and preliminary results highlight its efficiency. Index Terms—FPGA, HLS, CAD, hardware context switc

    Efficient Decompression of Binary Encoded Balanced Ternary Sequences

    Get PDF
    International audienceA balanced ternary digit, known as a trit, takes its values in {-1, 0, 1}. It can be encoded in binary as {11, 00, 01} for direct use in digital circuits. In this correspondence, we study the decompression of a sequence of bits into a sequence of binary encoded balanced ternary digits. We first show that it is useless in practice to compress sequences of more than 5 ternary values. We then provide two mappings, one to map 5 bits to 3 trits and one to map 8 bits to 5 trits. Both mappings were obtained by human analysis and lead to Boolean implementations that compare quite favorably with others obtained by tweaking assignment or encoding optimization tools. However, mappings that lead to better implementations may be feasible

    HLS-Based Methodology for Fast Iterative Development Applied to Elliptic Curve Arithmetic

    No full text
    International audienceHigh-Level Synthesis (HLS) is used by hardware developers to achieve higher abstraction in circuit descriptions. In order to shorten the hardware development time via HLS, we present an adjustment of the Iterative and Incremental Design (IID) methodology, frequently used in software development. In particular, our methodology is relevant for the development of applications with unusual complexity: the method was applied here to the development of large modular arithmetic, commonly used for cryptography applications (e.g., Elliptic Curves). Rapid feedback on circuit characteristics is used to evaluate deep architectural changes in short time, greatly reducing the time-to-market with respect to hand-made designs. In addition, our approach is highly flexible, since the same generic high-level description can be used to produce an entire set of circuits, each with different area/performance trade-offs. Thanks to the proposed approach, any change to the initial specification (e.g., the curve used) is also very fast, while it may require a large effort in the case of hand-made designs

    Flexible, extensible, open-source and affordable FPGA-based traffic generator

    Get PDF
    International audienceAs high-speed links become ubiquitous in current networks, testing new algorithms at high-speed is essential for researchers. This task often requires traffic to be generated with some specied features : distribution of packet sizes, payload content, number of TCP or UDP ows... When targeting a data rate of many Gb/s, this cannot be done with commodity computers. Commercial traffic generators exist for this task, but they are expensive and do not t the precise needs of researchers. In this paper, we describe an open-source implementation of a traffic generator capable of lling a 10 Gb/s Ethernet link, with traffic features specied in software. The implementation works on a board including an FPGA and a 10 Gb/s network interface, like the Combo from INVEA-TECH or the NetFPGA 10G. These boards are a ordable for research and can provide a congurable and easily extensible traffic generator

    Changement de contexte matériel sur FPGA entre équipements reconfigurables et hétérogènes dans un environnement de calcul distribué.

    No full text
    Current informatics greatly rely on hardware accelerators.Their mission is to accelerate domain-specific computation often too complex for a general purposeprocessor.A certain family of electronic devices, as known as reconfigurables, has been considered foraccelerating computation in some cases: low volume production, need for recurrent updates, flexibleuse cases etc.However, they are still not being used enough compared with the benefits they offer.In order to facilitate a wider adoption, we propose to give more flexibility when using this kindof technology.This thesis presents and studies the capacity of reconfigurable resources to be shared.In order to do that, one should be able to switch between tasks executing on the resource.This technique is called context-switch, and has been in the literature for quite some time.In this work we propose to use a high-level synthesis flow in conjunction with this scheme.Thanks to the high-level synthesis flow, context-switchable circuit construction is automated.The produced circuits are portable because generically built.In addition, we add two steps in the high-level flow in order to give better characteristics to thefinal circuits.One checkpoint selection limits the states where context-switch is allowed.Moreover, an embedded mechanism is built.Thanks to these two steps, the produced circuits overheads and performances are better than circuitswith naive mechanisms.A demonstration platform using FPGAs from different vendors is presented.It allows to test functionally and qualitatively the produced circuit used within a complexsystem.Les accélérateurs matériels occupent un rôle déterminant dans l'informatique actuelle.Leur mission est d'assurer des calculs spécifiques trop complexes pour les systèmes génériques baséssur des processeurs.Une famille de composants électroniques dits « reconfigurables », sont depuis des annéesconsidérés comme des candidats idéaux pour assurer l'accélération matérielle dans de nombreux cas :production à faible volume, besoin de mise à jour régulière, besoins d'utilisation flexible etc.En pratique, ils ne sont pas utilisés à la hauteur des gains qu'ils pourraient apporter.Afin de faciliter leur adoption on cherche à rendre l'utilisation d'une telle technologie plusflexible.Dans cette thèse, on propose donc d'étudier et d'améliorer la capacité des puces reconfigurables àêtre partagées.Pour partager une ressource reconfigurable, il faut prévoir la commutation des tâches s'y déroulant.Cette technique, la commutation de tâches matérielles sur cible reconfigurable, n'est pas nouvelleet appartient à l'état de l'art.On propose dans ces travaux d'utiliser cette technique avantageuse en conjonction avec un flot deconception actuel dit de synthèse de haut niveau.Grâce au flot de synthèse de haut niveau, on peut automatiser la génération de circuits commutablesportables car non spécifiques à une architecture de puce reconfigurable.Deux propositions viennent compléter la méthode.Celle-ci visent à tirer parti du niveau de manipulation des circuits afin d'améliorer lesperformances d'un système utilisant des tâches commutables.Dans un premier temps, on sélectionne un ensemble de points de sauvegarde lors desquels lacommutation est autorisée.On additionne ensuite un mécanisme d'extraction à la description matérielle de la tâche.Grâce à ces deux contributions ainsi que leur utilisation à haut niveau, on parvient à automatiserla génération de circuits flexibles et ayant un surcout limité compte tenu des caractéristiquesadditionnelles obtenues.Un démonstrateur utilisant plusieurs technologies de FPGA est présenté.Sa mise en œuvre permet de vérifier la fonctionnalité voulue ainsi que les mesures etcaractérisations in situ

    Hardware task context switch on FPGA between heterogeneous reconfigurable devices in a cloud-FPGA environment

    No full text
    Architectures reconfigurables dynamiquement offrent théoriquement excellent compromis entre performance et flexibilité. Pratiquement, ces architectures sont basées sur un ou plusieurs processeurs et plusieurs cellules reconfigurables. Une cellule reconfigurable peut charger, exécuter et décharger des accélérateurs matériels. Cette propriété permet la virtualisation des tâches matérielles. Dans ce contexte, une application peut prendre avantage de la flexibilité du logiciel et la performance du matériel. Dans les architectures reconfigurables actuels, les tâches matérielles sont limitées à une coopérative multi-tâches , depuis le temps de reconfiguration et l'heure de contexte stockage sont coûteux . Bien que le temps de reconfiguration est dépendante de l’architecture, le temps requis pour stocker ou restaurer le contexte dépend fortement des applications s'exécutant sur des tâches matériels. La réduction de ce temps des changements de contexte est obligatoire d'offrir à la tâche matérielle d'un multi- tâches préemptif, tout comme les tâches de logiciels. Plusieurs méthodes existent pour effectuer les opérations contexte commutateur matériel dans un contexte cellulaire homogène : chaîne de relecture dédiée sur tissus reconfigurables, des points de contrôle, de numérisation de la chaîne sur le contexte réel. Mais, rien n'a été proposé dans un contexte de tissu hétérogène (par exemple une accélération matérielle nuage fournir sur différents types de carte FPGA) .L'objectif de cette thèse est de proposer de nouvelles méthodes et algorithmes pour permettre le matériel des changements de contexte, même entre des cibles matérielles hétérogènes. Au cours de la thèse, l'étudiant devra :- Réaliser une bibliographie sur les méthodes du matériel du groupe de préemption existants dans le contexte cellulaire homogène.- Proposer des algorithmes qui permettent une solution légère et générique changement de contexte pour les tâches matérielles .- Valider ces algorithmes par leur intégration dans un flux de production d' accélérateur matériel . Ainsi, le flux prolongée peut générer, en plus de la tâche matérielle d'une application, le support matériel dédié pour des changements de contexte.- Proposer une stratégie de génération (multi- cible supplémentaire, ...) adapté pour cibles hétérogènes. La stratégie doit préserver les points de synchronisation entre les objectifs- Prototype de preuve de concepts sur la stratégie sur un nuage de FPGA.Dynamically reconfigurable architectures offer theoretically excellent trade-off between performance and flexibility. Practically, these architectures are based on one or several processors and several reconfigurable cells. A reconfigurable cell can load, execute and unload hardware accelerators. This property enables virtualization of hardware tasks. In this context, an application can take benefit from both software flexibility and hardware performance. In current reconfigurable architectures, hardware tasks are limited to cooperative multi-tasking, since reconfiguration time and context-storing time are expensive. While reconfiguration time is architecture-dependent, the time required to store or restore the context strongly depends on applications running on hardware tasks. Reducing this context-switch time is mandatory to offer to hardware task a preemptive multi-tasking, just like software tasks. Several methods exist to perform the hardware context-switch operations in an homogeneous cell context: dedicated readback chain on reconfigurable fabrics, checkpoints, scan-chain on live context. But, nothing has been proposed in an heterogeneous fabric context (e.g. a cloud providing hardware acceleration on various kind of FPGA board).The goal of this thesis is to propose new methodologies and algorithms to enable hardware context-switch even between heterogeneous hardware targets. During the thesis, the student will have to:- Realize a bibliography on the existing hardware task preemption methods in homogeneous cell context.- Propose algorithms that enable a lightweight and generic context switch solution for hardware tasks.- Validate these algorithms by their integration in a hardware accelerator generation flow. Thus, the extended flow can generate in addition of the hardware task of an application, the dedicated hardware support for context-switch.- Propose an generation strategy (incremental, multi-target,...) suitable for heterogeneous targets. The strategy has to preserve synchronization points between targets- Prototype proof-of-concepts on the strategy on an FPGA cloud

    La synthèse de haut niveau au service du changement de contexte matériel.

    No full text
    National audienceLe champ applicatif des FPGA est particulièrement vaste, mais il est possible d’offrir encore plus de débouchés à leur utilisation. Cet article décrit la brique de base que nous avons développée afin de rendre des tâches matérielles aisément contrôlables. Celle-ci consiste à permettre la préemption d’une tâche se déroulant sur une puce reconfigurable ainsi que son redémarrage futur. Elle est connue en tant que « changement de contexte » dans le domaine des microprocesseurs. Les caractéristiques qu’offrent une telle capacité sont: reconfiguration, dé- fragmentation, etc. On peut résumer en admettant qu’un circuit commutable, dont on peut changer le contexte, permet d’ouvrir les tâches matérielles à des scénarios multi-utilisateurs.Cet article présente un flot de conception basé sur un outil de synthèse d’architecture implantant dans un circuit la capacité de changer de contexte

    A Novel Method for Enabling FPGA Context-Switch (Abstract Only)

    No full text
    International audienceno abstrac

    Generating Efficient Context-Switch Capable Circuits Through Autonomous Design Flow

    Get PDF
    International audienceCommercial Off-the-Shelf (COTS) FPGAs are becoming increasingly powerful. In addition to their huge hardware resources, they are also integrated into complete systems on chips (SOCs), e.g. in the latest Xilinx Zynq or Altera Stratix platforms. However, cooperation between FPGAs and their surroundings, and the flexibility of hardware task management could still be improved. For instance, mechanisms have yet to be automated to allow multiuser approaches. A reconfigurable resource can be shared between applications or users only if it has a context-switch ability allowing applications to be paused and resumed in response to system demands. Here, we present a High-Level Synthesis (HLS) design flow producing a context-switch-capable circuit. The design flow manipulates the intermediate representation of a HLS tool to build the context extraction mechanism and to optimize performance for the circuit produced. The method is based on efficient checkpoint selection and insertion of a powerful scan-chain into the initial circuit. This scan-chain can extract flip-flops or memory content. Experiments with the system produced show that it has a low hardware overhead for many benchmark applications, and that the hardware added has a negligible impact on application performance. Comparison with current standard methods highlights the efficiency of our contributions
    corecore